package com.yykj.user.center.server.service.patient;

import com.yykj.common.vo.PageData;
import com.yykj.user.center.client.dto.ConsultationOrderInfoDTO;
import com.yykj.user.center.client.dto.ConsultationStatisticsDto;
import com.yykj.user.center.client.dto.DoctorConsultationCountDto;
import com.yykj.user.center.server.dto.ConsultationDoctorDTO;
import com.yykj.user.center.server.dto.ConsultationInfoDTO;
import com.yykj.user.center.server.dto.ConsultationInfoOrderDTO;
import com.yykj.user.center.server.dto.MyConsultationDTO;
import com.yykj.user.center.server.form.*;

import java.util.List;

/**
 * @author chenl
 * @version 1.0
 * @date 2021/11/6 14:21
 */
public interface ConsultationInfoService {

    String create(AddConsultationOrderForm addConsultationInfoForm);

    List<ConsultationDoctorDTO> consultationDoctors();

    Boolean updateState(UpdateConsultationOrderStateForm updateConsultationOrderStateForm);

    List<MyConsultationDTO> consultationList(String patientCardId, Integer state);

    Boolean cancel(CancelConsultationForm cancelConsultationForm);

    PageData<ConsultationInfoOrderDTO> list(Integer current, Integer size, String startDate, String endDate, String doctorName, String patientName, String mobile, String orderNo, Integer orderType, Integer endType, Integer state, Integer refundStatus, Integer payStatus,Integer hospitalId);

    void complete();

    ConsultationInfoDTO info(String accountId,String doctorId,String consultationInfoId, String prescriptionId);

    ConsultationStatisticsDto statistics(String doctorId);

    List<DoctorConsultationCountDto> doctorConsultationCount(List<String> doctorIds);

    ConsultationOrderInfoDTO orderInfo(String orderNo);

    void auth(String consultationId, int type);

    String again(AddAgainConsultationOrderForm addAgainConsultationOrderForm);

    String prescriptionBinding(PrescriptionBindingForm prescriptionBindingForm);

}
